<?xml version = '1.0' encoding = 'ISO-8859-1' ?>
<asm version="1.0" name="0">
	<cp>
		<constant value="selectSingles"/>
		<constant value="links"/>
		<constant value="NTransientLinkSet;"/>
		<constant value="col"/>
		<constant value="J"/>
		<constant value="main"/>
		<constant value="A"/>
		<constant value="OclParametrizedType"/>
		<constant value="#native"/>
		<constant value="Collection"/>
		<constant value="J.setName(S):V"/>
		<constant value="OclSimpleType"/>
		<constant value="OclAny"/>
		<constant value="J.setElementType(J):V"/>
		<constant value="TransientLinkSet"/>
		<constant value="A.__matcher__():V"/>
		<constant value="A.__exec__():V"/>
		<constant value="self"/>
		<constant value="__resolve__"/>
		<constant value="1"/>
		<constant value="J.oclIsKindOf(J):B"/>
		<constant value="18"/>
		<constant value="NTransientLinkSet;.getLinkBySourceElement(S):QNTransientLink;"/>
		<constant value="J.oclIsUndefined():B"/>
		<constant value="15"/>
		<constant value="NTransientLink;.getTargetFromSource(J):J"/>
		<constant value="17"/>
		<constant value="30"/>
		<constant value="Sequence"/>
		<constant value="2"/>
		<constant value="A.__resolve__(J):J"/>
		<constant value="QJ.including(J):QJ"/>
		<constant value="QJ.flatten():QJ"/>
		<constant value="e"/>
		<constant value="value"/>
		<constant value="resolveTemp"/>
		<constant value="S"/>
		<constant value="NTransientLink;.getNamedTargetFromSource(JS):J"/>
		<constant value="name"/>
		<constant value="__matcher__"/>
		<constant value="A.__matchStudents2Singles():V"/>
		<constant value="A.__matchClassroom():V"/>
		<constant value="A.__matchDiagram():V"/>
		<constant value="A.__matchSchool():V"/>
		<constant value="__exec__"/>
		<constant value="Students2Singles"/>
		<constant value="NTransientLinkSet;.getLinksByRule(S):QNTransientLink;"/>
		<constant value="A.__applyStudents2Singles(NTransientLink;):V"/>
		<constant value="Classroom"/>
		<constant value="A.__applyClassroom(NTransientLink;):V"/>
		<constant value="Diagram"/>
		<constant value="A.__applyDiagram(NTransientLink;):V"/>
		<constant value="School"/>
		<constant value="A.__applySchool(NTransientLink;):V"/>
		<constant value="hasFriends"/>
		<constant value="MMM!Student;"/>
		<constant value="0"/>
		<constant value="friends"/>
		<constant value="J.notEmpty():J"/>
		<constant value="8:2-8:6"/>
		<constant value="8:2-8:14"/>
		<constant value="8:2-8:25"/>
		<constant value="__matchStudents2Singles"/>
		<constant value="Student"/>
		<constant value="MM"/>
		<constant value="IN"/>
		<constant value="MMOF!Classifier;.allInstancesFrom(S):QJ"/>
		<constant value="J.hasFriends():J"/>
		<constant value="J.not():J"/>
		<constant value="B.not():B"/>
		<constant value="32"/>
		<constant value="TransientLink"/>
		<constant value="NTransientLink;.setRule(MATL!Rule;):V"/>
		<constant value="s"/>
		<constant value="NTransientLink;.addSourceElement(SJ):V"/>
		<constant value="t"/>
		<constant value="MM1"/>
		<constant value="NTransientLink;.addTargetElement(SJ):V"/>
		<constant value="NTransientLinkSet;.addLink2(NTransientLink;B):V"/>
		<constant value="14:23-14:24"/>
		<constant value="14:23-14:37"/>
		<constant value="14:19-14:37"/>
		<constant value="16:3-19:4"/>
		<constant value="__applyStudents2Singles"/>
		<constant value="NTransientLink;"/>
		<constant value="NTransientLink;.getSourceElement(S):J"/>
		<constant value="NTransientLink;.getTargetElement(S):J"/>
		<constant value="3"/>
		<constant value="17:12-17:13"/>
		<constant value="17:12-17:18"/>
		<constant value="17:4-17:18"/>
		<constant value="18:15-18:16"/>
		<constant value="18:15-18:24"/>
		<constant value="18:4-18:24"/>
		<constant value="link"/>
		<constant value="__matchClassroom"/>
		<constant value="26:3-29:4"/>
		<constant value="__applyClassroom"/>
		<constant value="students"/>
		<constant value="27:16-27:17"/>
		<constant value="27:16-27:26"/>
		<constant value="27:4-27:26"/>
		<constant value="28:12-28:13"/>
		<constant value="28:12-28:18"/>
		<constant value="28:4-28:18"/>
		<constant value="__matchDiagram"/>
		<constant value="36:3-38:4"/>
		<constant value="__applyDiagram"/>
		<constant value="school"/>
		<constant value="37:14-37:15"/>
		<constant value="37:14-37:22"/>
		<constant value="37:4-37:22"/>
		<constant value="__matchSchool"/>
		<constant value="45:3-48:4"/>
		<constant value="__applySchool"/>
		<constant value="classrooms"/>
		<constant value="46:12-46:13"/>
		<constant value="46:12-46:18"/>
		<constant value="46:4-46:18"/>
		<constant value="47:18-47:19"/>
		<constant value="47:18-47:30"/>
		<constant value="47:4-47:30"/>
	</cp>
	<field name="1" type="2"/>
	<field name="3" type="4"/>
	<operation name="5">
		<context type="6"/>
		<parameters>
		</parameters>
		<code>
			<getasm/>
			<push arg="7"/>
			<push arg="8"/>
			<new/>
			<dup/>
			<push arg="9"/>
			<pcall arg="10"/>
			<dup/>
			<push arg="11"/>
			<push arg="8"/>
			<new/>
			<dup/>
			<push arg="12"/>
			<pcall arg="10"/>
			<pcall arg="13"/>
			<set arg="3"/>
			<getasm/>
			<push arg="14"/>
			<push arg="8"/>
			<new/>
			<set arg="1"/>
			<getasm/>
			<pcall arg="15"/>
			<getasm/>
			<pcall arg="16"/>
		</code>
		<linenumbertable>
		</linenumbertable>
		<localvariabletable>
			<lve slot="0" name="17" begin="0" end="24"/>
		</localvariabletable>
	</operation>
	<operation name="18">
		<context type="6"/>
		<parameters>
			<parameter name="19" type="4"/>
		</parameters>
		<code>
			<load arg="19"/>
			<getasm/>
			<get arg="3"/>
			<call arg="20"/>
			<if arg="21"/>
			<getasm/>
			<get arg="1"/>
			<load arg="19"/>
			<call arg="22"/>
			<dup/>
			<call arg="23"/>
			<if arg="24"/>
			<load arg="19"/>
			<call arg="25"/>
			<goto arg="26"/>
			<pop/>
			<load arg="19"/>
			<goto arg="27"/>
			<push arg="28"/>
			<push arg="8"/>
			<new/>
			<load arg="19"/>
			<iterate/>
			<store arg="29"/>
			<getasm/>
			<load arg="29"/>
			<call arg="30"/>
			<call arg="31"/>
			<enditerate/>
			<call arg="32"/>
		</code>
		<linenumbertable>
		</linenumbertable>
		<localvariabletable>
			<lve slot="2" name="33" begin="23" end="27"/>
			<lve slot="0" name="17" begin="0" end="29"/>
			<lve slot="1" name="34" begin="0" end="29"/>
		</localvariabletable>
	</operation>
	<operation name="35">
		<context type="6"/>
		<parameters>
			<parameter name="19" type="4"/>
			<parameter name="29" type="36"/>
		</parameters>
		<code>
			<getasm/>
			<get arg="1"/>
			<load arg="19"/>
			<call arg="22"/>
			<load arg="19"/>
			<load arg="29"/>
			<call arg="37"/>
		</code>
		<linenumbertable>
		</linenumbertable>
		<localvariabletable>
			<lve slot="0" name="17" begin="0" end="6"/>
			<lve slot="1" name="34" begin="0" end="6"/>
			<lve slot="2" name="38" begin="0" end="6"/>
		</localvariabletable>
	</operation>
	<operation name="39">
		<context type="6"/>
		<parameters>
		</parameters>
		<code>
			<getasm/>
			<pcall arg="40"/>
			<getasm/>
			<pcall arg="41"/>
			<getasm/>
			<pcall arg="42"/>
			<getasm/>
			<pcall arg="43"/>
		</code>
		<linenumbertable>
		</linenumbertable>
		<localvariabletable>
			<lve slot="0" name="17" begin="0" end="7"/>
		</localvariabletable>
	</operation>
	<operation name="44">
		<context type="6"/>
		<parameters>
		</parameters>
		<code>
			<getasm/>
			<get arg="1"/>
			<push arg="45"/>
			<call arg="46"/>
			<iterate/>
			<store arg="19"/>
			<getasm/>
			<load arg="19"/>
			<pcall arg="47"/>
			<enditerate/>
			<getasm/>
			<get arg="1"/>
			<push arg="48"/>
			<call arg="46"/>
			<iterate/>
			<store arg="19"/>
			<getasm/>
			<load arg="19"/>
			<pcall arg="49"/>
			<enditerate/>
			<getasm/>
			<get arg="1"/>
			<push arg="50"/>
			<call arg="46"/>
			<iterate/>
			<store arg="19"/>
			<getasm/>
			<load arg="19"/>
			<pcall arg="51"/>
			<enditerate/>
			<getasm/>
			<get arg="1"/>
			<push arg="52"/>
			<call arg="46"/>
			<iterate/>
			<store arg="19"/>
			<getasm/>
			<load arg="19"/>
			<pcall arg="53"/>
			<enditerate/>
		</code>
		<linenumbertable>
		</linenumbertable>
		<localvariabletable>
			<lve slot="1" name="33" begin="5" end="8"/>
			<lve slot="1" name="33" begin="15" end="18"/>
			<lve slot="1" name="33" begin="25" end="28"/>
			<lve slot="1" name="33" begin="35" end="38"/>
			<lve slot="0" name="17" begin="0" end="39"/>
		</localvariabletable>
	</operation>
	<operation name="54">
		<context type="55"/>
		<parameters>
		</parameters>
		<code>
			<load arg="56"/>
			<get arg="57"/>
			<call arg="58"/>
		</code>
		<linenumbertable>
			<lne id="59" begin="0" end="0"/>
			<lne id="60" begin="0" end="1"/>
			<lne id="61" begin="0" end="2"/>
		</linenumbertable>
		<localvariabletable>
			<lve slot="0" name="17" begin="0" end="2"/>
		</localvariabletable>
	</operation>
	<operation name="62">
		<context type="6"/>
		<parameters>
		</parameters>
		<code>
			<push arg="63"/>
			<push arg="64"/>
			<findme/>
			<push arg="65"/>
			<call arg="66"/>
			<iterate/>
			<store arg="19"/>
			<load arg="19"/>
			<call arg="67"/>
			<call arg="68"/>
			<call arg="69"/>
			<if arg="70"/>
			<getasm/>
			<get arg="1"/>
			<push arg="71"/>
			<push arg="8"/>
			<new/>
			<dup/>
			<push arg="45"/>
			<pcall arg="72"/>
			<dup/>
			<push arg="73"/>
			<load arg="19"/>
			<pcall arg="74"/>
			<dup/>
			<push arg="75"/>
			<push arg="63"/>
			<push arg="76"/>
			<new/>
			<pcall arg="77"/>
			<pusht/>
			<pcall arg="78"/>
			<enditerate/>
		</code>
		<linenumbertable>
			<lne id="79" begin="7" end="7"/>
			<lne id="80" begin="7" end="8"/>
			<lne id="81" begin="7" end="9"/>
			<lne id="82" begin="24" end="29"/>
		</linenumbertable>
		<localvariabletable>
			<lve slot="1" name="73" begin="6" end="31"/>
			<lve slot="0" name="17" begin="0" end="32"/>
		</localvariabletable>
	</operation>
	<operation name="83">
		<context type="6"/>
		<parameters>
			<parameter name="19" type="84"/>
		</parameters>
		<code>
			<load arg="19"/>
			<push arg="73"/>
			<call arg="85"/>
			<store arg="29"/>
			<load arg="19"/>
			<push arg="75"/>
			<call arg="86"/>
			<store arg="87"/>
			<load arg="87"/>
			<dup/>
			<getasm/>
			<load arg="29"/>
			<get arg="38"/>
			<call arg="30"/>
			<set arg="38"/>
			<dup/>
			<getasm/>
			<load arg="29"/>
			<get arg="57"/>
			<call arg="30"/>
			<set arg="57"/>
			<pop/>
		</code>
		<linenumbertable>
			<lne id="88" begin="11" end="11"/>
			<lne id="89" begin="11" end="12"/>
			<lne id="90" begin="9" end="14"/>
			<lne id="91" begin="17" end="17"/>
			<lne id="92" begin="17" end="18"/>
			<lne id="93" begin="15" end="20"/>
			<lne id="82" begin="8" end="21"/>
		</linenumbertable>
		<localvariabletable>
			<lve slot="3" name="75" begin="7" end="21"/>
			<lve slot="2" name="73" begin="3" end="21"/>
			<lve slot="0" name="17" begin="0" end="21"/>
			<lve slot="1" name="94" begin="0" end="21"/>
		</localvariabletable>
	</operation>
	<operation name="95">
		<context type="6"/>
		<parameters>
		</parameters>
		<code>
			<push arg="48"/>
			<push arg="64"/>
			<findme/>
			<push arg="65"/>
			<call arg="66"/>
			<iterate/>
			<store arg="19"/>
			<getasm/>
			<get arg="1"/>
			<push arg="71"/>
			<push arg="8"/>
			<new/>
			<dup/>
			<push arg="48"/>
			<pcall arg="72"/>
			<dup/>
			<push arg="73"/>
			<load arg="19"/>
			<pcall arg="74"/>
			<dup/>
			<push arg="75"/>
			<push arg="48"/>
			<push arg="76"/>
			<new/>
			<pcall arg="77"/>
			<pusht/>
			<pcall arg="78"/>
			<enditerate/>
		</code>
		<linenumbertable>
			<lne id="96" begin="19" end="24"/>
		</linenumbertable>
		<localvariabletable>
			<lve slot="1" name="73" begin="6" end="26"/>
			<lve slot="0" name="17" begin="0" end="27"/>
		</localvariabletable>
	</operation>
	<operation name="97">
		<context type="6"/>
		<parameters>
			<parameter name="19" type="84"/>
		</parameters>
		<code>
			<load arg="19"/>
			<push arg="73"/>
			<call arg="85"/>
			<store arg="29"/>
			<load arg="19"/>
			<push arg="75"/>
			<call arg="86"/>
			<store arg="87"/>
			<load arg="87"/>
			<dup/>
			<getasm/>
			<load arg="29"/>
			<get arg="98"/>
			<call arg="30"/>
			<set arg="98"/>
			<dup/>
			<getasm/>
			<load arg="29"/>
			<get arg="38"/>
			<call arg="30"/>
			<set arg="38"/>
			<pop/>
		</code>
		<linenumbertable>
			<lne id="99" begin="11" end="11"/>
			<lne id="100" begin="11" end="12"/>
			<lne id="101" begin="9" end="14"/>
			<lne id="102" begin="17" end="17"/>
			<lne id="103" begin="17" end="18"/>
			<lne id="104" begin="15" end="20"/>
			<lne id="96" begin="8" end="21"/>
		</linenumbertable>
		<localvariabletable>
			<lve slot="3" name="75" begin="7" end="21"/>
			<lve slot="2" name="73" begin="3" end="21"/>
			<lve slot="0" name="17" begin="0" end="21"/>
			<lve slot="1" name="94" begin="0" end="21"/>
		</localvariabletable>
	</operation>
	<operation name="105">
		<context type="6"/>
		<parameters>
		</parameters>
		<code>
			<push arg="50"/>
			<push arg="64"/>
			<findme/>
			<push arg="65"/>
			<call arg="66"/>
			<iterate/>
			<store arg="19"/>
			<getasm/>
			<get arg="1"/>
			<push arg="71"/>
			<push arg="8"/>
			<new/>
			<dup/>
			<push arg="50"/>
			<pcall arg="72"/>
			<dup/>
			<push arg="73"/>
			<load arg="19"/>
			<pcall arg="74"/>
			<dup/>
			<push arg="75"/>
			<push arg="50"/>
			<push arg="76"/>
			<new/>
			<pcall arg="77"/>
			<pusht/>
			<pcall arg="78"/>
			<enditerate/>
		</code>
		<linenumbertable>
			<lne id="106" begin="19" end="24"/>
		</linenumbertable>
		<localvariabletable>
			<lve slot="1" name="73" begin="6" end="26"/>
			<lve slot="0" name="17" begin="0" end="27"/>
		</localvariabletable>
	</operation>
	<operation name="107">
		<context type="6"/>
		<parameters>
			<parameter name="19" type="84"/>
		</parameters>
		<code>
			<load arg="19"/>
			<push arg="73"/>
			<call arg="85"/>
			<store arg="29"/>
			<load arg="19"/>
			<push arg="75"/>
			<call arg="86"/>
			<store arg="87"/>
			<load arg="87"/>
			<dup/>
			<getasm/>
			<load arg="29"/>
			<get arg="108"/>
			<call arg="30"/>
			<set arg="108"/>
			<pop/>
		</code>
		<linenumbertable>
			<lne id="109" begin="11" end="11"/>
			<lne id="110" begin="11" end="12"/>
			<lne id="111" begin="9" end="14"/>
			<lne id="106" begin="8" end="15"/>
		</linenumbertable>
		<localvariabletable>
			<lve slot="3" name="75" begin="7" end="15"/>
			<lve slot="2" name="73" begin="3" end="15"/>
			<lve slot="0" name="17" begin="0" end="15"/>
			<lve slot="1" name="94" begin="0" end="15"/>
		</localvariabletable>
	</operation>
	<operation name="112">
		<context type="6"/>
		<parameters>
		</parameters>
		<code>
			<push arg="52"/>
			<push arg="64"/>
			<findme/>
			<push arg="65"/>
			<call arg="66"/>
			<iterate/>
			<store arg="19"/>
			<getasm/>
			<get arg="1"/>
			<push arg="71"/>
			<push arg="8"/>
			<new/>
			<dup/>
			<push arg="52"/>
			<pcall arg="72"/>
			<dup/>
			<push arg="73"/>
			<load arg="19"/>
			<pcall arg="74"/>
			<dup/>
			<push arg="75"/>
			<push arg="52"/>
			<push arg="76"/>
			<new/>
			<pcall arg="77"/>
			<pusht/>
			<pcall arg="78"/>
			<enditerate/>
		</code>
		<linenumbertable>
			<lne id="113" begin="19" end="24"/>
		</linenumbertable>
		<localvariabletable>
			<lve slot="1" name="73" begin="6" end="26"/>
			<lve slot="0" name="17" begin="0" end="27"/>
		</localvariabletable>
	</operation>
	<operation name="114">
		<context type="6"/>
		<parameters>
			<parameter name="19" type="84"/>
		</parameters>
		<code>
			<load arg="19"/>
			<push arg="73"/>
			<call arg="85"/>
			<store arg="29"/>
			<load arg="19"/>
			<push arg="75"/>
			<call arg="86"/>
			<store arg="87"/>
			<load arg="87"/>
			<dup/>
			<getasm/>
			<load arg="29"/>
			<get arg="38"/>
			<call arg="30"/>
			<set arg="38"/>
			<dup/>
			<getasm/>
			<load arg="29"/>
			<get arg="115"/>
			<call arg="30"/>
			<set arg="115"/>
			<pop/>
		</code>
		<linenumbertable>
			<lne id="116" begin="11" end="11"/>
			<lne id="117" begin="11" end="12"/>
			<lne id="118" begin="9" end="14"/>
			<lne id="119" begin="17" end="17"/>
			<lne id="120" begin="17" end="18"/>
			<lne id="121" begin="15" end="20"/>
			<lne id="113" begin="8" end="21"/>
		</linenumbertable>
		<localvariabletable>
			<lve slot="3" name="75" begin="7" end="21"/>
			<lve slot="2" name="73" begin="3" end="21"/>
			<lve slot="0" name="17" begin="0" end="21"/>
			<lve slot="1" name="94" begin="0" end="21"/>
		</localvariabletable>
	</operation>
</asm>
